The term “availability” in the context of communications refers to whether a user is available to accept incoming invitations to participate in communications sessions. For example, a user may be unavailable to accept telephone calls if the telephone line is busy. In instant messaging, a user is unavailable if the user's online status is set to “busy.” In the latter case, online status is set manually through a “Change Online Status” menu which is commonly available in instant messaging clients.
Communication devices use availability information to decide whether to accept incoming communications, alert users of incoming communications, display incoming communications, and other purposes. Availability detection, as implemented in existing applications, reflects either the utilization of communication channels or the express unwillingness of users to participate in communications.
At present, availability detection suffers from at least four drawbacks. First, the “availability” of a user reflects only the user's preferences; it does not account for situations in which a user's availability needs to reflect the preferences of third parties. For instance, in the employment setting, it is desirable for both employees, as well as employers to have a say whether the employees are available. Second, users often forget to manually reset their online status, and consequently, it is difficult to know when one's online status is a true reflection of his or her availability. Therefore, the need exists for a method which addresses these drawbacks to provide improved and more robust communication devices.
Third, present availability detection techniques have limited accessibility. In general, enterprise firewalls are configured to block queries to presence servers in the networks which they protect. Configuring enterprise firewalls to let through communications for the presence servers will provide another venue for attack of the enterprise networks. For this reason, at present, corporations do not provide outsiders with access to internal presence servers. As a result, presence information that is internally available cannot be shared with interested parties who reside outside of the enterprise networks. The need, therefore, exists for a method which would enable the interested parties to receive availability information without compromising the security of the enterprise networks.
And fourth, present availability detection techniques have limited interoperability. Presence servers operate in accordance with specialized communication protocols, such as Jabber, for example. When a person wants to connect to a presence server, that person needs to have a client application that supports the protocol of the presence server; otherwise, the person would be unable to exchange information with the presence server. Requiring users to keep track of what protocols are used by different presence servers is cumbersome. Therefore, the need exists for a method for the delivery of availability information that is independent of specialized communication protocols.